<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>serial: include/serial/serial.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">serial
   &#160;<span id="projectnumber">1.1.0</span>
   </div>
   <div id="projectbrief">Cross-platform, serial port library written in C++</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_f22bcfb215a71b7a0026d80fdd46745d.html">serial</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">serial.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="serial_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#ifndef SERIAL_H</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#define SERIAL_H</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &lt;exception&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#include &lt;stdexcept&gt;</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="v8stdint_8h.html">serial/v8stdint.h</a>&gt;</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="serial_8h.html#a25cffc64bd967636d69d7c3c82af1030">   48</a></span>&#160;<span class="preprocessor">#define THROW(exceptionClass, message) throw exceptionClass(__FILE__, \</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">__LINE__, (message) )</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceserial.html">serial</a> {</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8">   56</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8af09eeaf7333d2feda0bd3d748d5e3123">   57</a></span>&#160;  <a class="code" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8af09eeaf7333d2feda0bd3d748d5e3123">fivebits</a> = 5,</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8a608eb93b80fe8531d626b4e588c5bc8b">   58</a></span>&#160;  <a class="code" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8a608eb93b80fe8531d626b4e588c5bc8b">sixbits</a> = 6,</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8a7cf0a3607e326ff6736941008ea8174d">   59</a></span>&#160;  <a class="code" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8a7cf0a3607e326ff6736941008ea8174d">sevenbits</a> = 7,</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8a47f14d952cf9bed6c3f7ae5985161990">   60</a></span>&#160;  <a class="code" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8a47f14d952cf9bed6c3f7ae5985161990">eightbits</a> = 8</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;} <a class="code" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8">bytesize_t</a>;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481">   66</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481a31cbb2b3cf0870d1a089d66295918416">   67</a></span>&#160;  <a class="code" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481a31cbb2b3cf0870d1a089d66295918416">parity_none</a> = 0,</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481affd8fd58edf7c25bab458cafaebecb10">   68</a></span>&#160;  <a class="code" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481affd8fd58edf7c25bab458cafaebecb10">parity_odd</a> = 1,</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481abe15d241d407528bc8a199b02301ed46">   69</a></span>&#160;  <a class="code" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481abe15d241d407528bc8a199b02301ed46">parity_even</a> = 2,</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481a6d7af531414706617a23fe1926ad7ac6">   70</a></span>&#160;  <a class="code" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481a6d7af531414706617a23fe1926ad7ac6">parity_mark</a> = 3,</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481a94681358f3d53873698fdc98d6890cef">   71</a></span>&#160;  <a class="code" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481a94681358f3d53873698fdc98d6890cef">parity_space</a> = 4</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;} <a class="code" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481">parity_t</a>;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469">   77</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469ab70806555a14cb43e5cc43f6f3d01157">   78</a></span>&#160;  <a class="code" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469ab70806555a14cb43e5cc43f6f3d01157">stopbits_one</a> = 1,</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469ae0b1b8af1ece65afeacbe9fff198fa47">   79</a></span>&#160;  <a class="code" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469ae0b1b8af1ece65afeacbe9fff198fa47">stopbits_two</a> = 2,</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469abb25fb831662d361d99cf12fb0da45ec">   80</a></span>&#160;  <a class="code" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469abb25fb831662d361d99cf12fb0da45ec">stopbits_one_point_five</a></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;} <a class="code" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469">stopbits_t</a>;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351">   86</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351a083bc02a6e8e7c6540a28654c0f95bb0">   87</a></span>&#160;  <a class="code" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351a083bc02a6e8e7c6540a28654c0f95bb0">flowcontrol_none</a> = 0,</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351ab3390af5eee11740af5e09d71ad419a6">   88</a></span>&#160;  <a class="code" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351ab3390af5eee11740af5e09d71ad419a6">flowcontrol_software</a>,</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351a84d411ac86fd25d659eef30aade04c43">   89</a></span>&#160;  <a class="code" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351a84d411ac86fd25d659eef30aade04c43">flowcontrol_hardware</a></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;} <a class="code" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351">flowcontrol_t</a>;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="structserial_1_1_timeout.html">   98</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structserial_1_1_timeout.html">Timeout</a> {</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="preprocessor">#ifdef max</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="preprocessor"># undef max</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="structserial_1_1_timeout.html#adc68e33d2f94bfa33ba1062c363b9151">  102</a></span>&#160;  <span class="keyword">static</span> uint32_t <a class="code" href="structserial_1_1_timeout.html#adc68e33d2f94bfa33ba1062c363b9151">max</a>() {<span class="keywordflow">return</span> std::numeric_limits&lt;uint32_t&gt;::max();}</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="structserial_1_1_timeout.html#aa4fbd72e16f47c9aea9fb3c32ca17828">  112</a></span>&#160;  <span class="keyword">static</span> <a class="code" href="structserial_1_1_timeout.html">Timeout</a> <a class="code" href="structserial_1_1_timeout.html#aa4fbd72e16f47c9aea9fb3c32ca17828">simpleTimeout</a>(uint32_t timeout) {</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="structserial_1_1_timeout.html#a1a454b17f5d653b8e1b04b3ec2fead59">Timeout</a>(<a class="code" href="structserial_1_1_timeout.html#adc68e33d2f94bfa33ba1062c363b9151">max</a>(), timeout, 0, timeout, 0);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;  }</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="structserial_1_1_timeout.html#ada15f2a0ae478cbb62ef79d1633b2b81">  117</a></span>&#160;  uint32_t <a class="code" href="structserial_1_1_timeout.html#ada15f2a0ae478cbb62ef79d1633b2b81">inter_byte_timeout</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structserial_1_1_timeout.html#a099244649dec66b6e0548480edeb2b9f">  119</a></span>&#160;  uint32_t <a class="code" href="structserial_1_1_timeout.html#a099244649dec66b6e0548480edeb2b9f">read_timeout_constant</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="structserial_1_1_timeout.html#a64412753eb2edf1621716dd9f1a4e71e">  123</a></span>&#160;  uint32_t <a class="code" href="structserial_1_1_timeout.html#a64412753eb2edf1621716dd9f1a4e71e">read_timeout_multiplier</a>;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structserial_1_1_timeout.html#accf01b97f83564f4ce3d6e5f63e21006">  125</a></span>&#160;  uint32_t <a class="code" href="structserial_1_1_timeout.html#accf01b97f83564f4ce3d6e5f63e21006">write_timeout_constant</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="structserial_1_1_timeout.html#a31ddae32907cff9c3d27fa763981317d">  129</a></span>&#160;  uint32_t <a class="code" href="structserial_1_1_timeout.html#a31ddae32907cff9c3d27fa763981317d">write_timeout_multiplier</a>;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="structserial_1_1_timeout.html#a1a454b17f5d653b8e1b04b3ec2fead59">  131</a></span>&#160;  <span class="keyword">explicit</span> <a class="code" href="structserial_1_1_timeout.html#a1a454b17f5d653b8e1b04b3ec2fead59">Timeout</a> (uint32_t inter_byte_timeout_=0,</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                    uint32_t read_timeout_constant_=0,</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                    uint32_t read_timeout_multiplier_=0,</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                    uint32_t write_timeout_constant_=0,</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                    uint32_t write_timeout_multiplier_=0)</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;  : inter_byte_timeout(inter_byte_timeout_),</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    read_timeout_constant(read_timeout_constant_),</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    read_timeout_multiplier(read_timeout_multiplier_),</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    write_timeout_constant(write_timeout_constant_),</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    write_timeout_multiplier(write_timeout_multiplier_)</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;  {}</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;};</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classserial_1_1_serial.html">  147</a></span>&#160;<span class="keyword">class </span><a class="code" href="classserial_1_1_serial.html">Serial</a> {</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;  <a class="code" href="classserial_1_1_serial.html">Serial</a> (<span class="keyword">const</span> std::string &amp;port = <span class="stringliteral">&quot;&quot;</span>,</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;          uint32_t baudrate = 9600,</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;          <a class="code" href="structserial_1_1_timeout.html">Timeout</a> timeout = <a class="code" href="structserial_1_1_timeout.html#a1a454b17f5d653b8e1b04b3ec2fead59">Timeout</a>(),</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;          <a class="code" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8">bytesize_t</a> bytesize = <a class="code" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8a47f14d952cf9bed6c3f7ae5985161990">eightbits</a>,</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;          <a class="code" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481">parity_t</a> parity = <a class="code" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481a31cbb2b3cf0870d1a089d66295918416">parity_none</a>,</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;          stopbits_t stopbits = <a class="code" href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469ab70806555a14cb43e5cc43f6f3d01157">stopbits_one</a>,</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;          flowcontrol_t flowcontrol = <a class="code" href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351a083bc02a6e8e7c6540a28654c0f95bb0">flowcontrol_none</a>);</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;  <span class="keyword">virtual</span> ~<a class="code" href="classserial_1_1_serial.html">Serial</a> ();</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;  open ();</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;  <span class="keywordtype">bool</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;  isOpen () <span class="keyword">const</span>;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;  close ();</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;  <span class="keywordtype">size_t</span></div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;  available ();</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;  <span class="keywordtype">bool</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;  waitReadable ();</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;  waitByteTimes (<span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;  <span class="keywordtype">size_t</span></div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;  read (uint8_t *buffer, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;  <span class="keywordtype">size_t</span></div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;  read (std::vector&lt;uint8_t&gt; &amp;buffer, <span class="keywordtype">size_t</span> size = 1);</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;  <span class="keywordtype">size_t</span></div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;  read (std::string &amp;buffer, <span class="keywordtype">size_t</span> size = 1);</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;  std::string</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;  read (<span class="keywordtype">size_t</span> size = 1);</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;  <span class="keywordtype">size_t</span></div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;  readline (std::string &amp;buffer, <span class="keywordtype">size_t</span> size = 65536, std::string eol = <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;  std::string</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;  readline (<span class="keywordtype">size_t</span> size = 65536, std::string eol = <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;  std::vector&lt;std::string&gt;</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;  readlines (<span class="keywordtype">size_t</span> size = 65536, std::string eol = <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;  <span class="keywordtype">size_t</span></div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;  write (<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;  <span class="keywordtype">size_t</span></div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;  write (<span class="keyword">const</span> std::vector&lt;uint8_t&gt; &amp;data);</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;  <span class="keywordtype">size_t</span></div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;  write (<span class="keyword">const</span> std::string &amp;data);</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;  setPort (<span class="keyword">const</span> std::string &amp;port);</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;  std::string</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;  getPort () <span class="keyword">const</span>;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;  setTimeout (<a class="code" href="structserial_1_1_timeout.html">Timeout</a> &amp;timeout);</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classserial_1_1_serial.html#a4b4be39af3e1c68bc6ac09cb55788c86">  465</a></span>&#160;  <a class="code" href="classserial_1_1_serial.html#a4b4be39af3e1c68bc6ac09cb55788c86">setTimeout</a> (uint32_t <a class="code" href="structserial_1_1_timeout.html#ada15f2a0ae478cbb62ef79d1633b2b81">inter_byte_timeout</a>, uint32_t <a class="code" href="structserial_1_1_timeout.html#a099244649dec66b6e0548480edeb2b9f">read_timeout_constant</a>,</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;              uint32_t <a class="code" href="structserial_1_1_timeout.html#a64412753eb2edf1621716dd9f1a4e71e">read_timeout_multiplier</a>, uint32_t <a class="code" href="structserial_1_1_timeout.html#accf01b97f83564f4ce3d6e5f63e21006">write_timeout_constant</a>,</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;              uint32_t <a class="code" href="structserial_1_1_timeout.html#a31ddae32907cff9c3d27fa763981317d">write_timeout_multiplier</a>)</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;  {</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    <a class="code" href="structserial_1_1_timeout.html">Timeout</a> timeout(inter_byte_timeout, read_timeout_constant,</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;                    read_timeout_multiplier, write_timeout_constant,</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;                    write_timeout_multiplier);</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    <span class="keywordflow">return</span> setTimeout(timeout);</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;  }</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;  <a class="code" href="structserial_1_1_timeout.html">Timeout</a></div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;  getTimeout () <span class="keyword">const</span>;</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;  setBaudrate (uint32_t baudrate);</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;  uint32_t</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;  getBaudrate () <span class="keyword">const</span>;</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;  setBytesize (<a class="code" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8">bytesize_t</a> bytesize);</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;  <a class="code" href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8">bytesize_t</a></div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;  getBytesize () <span class="keyword">const</span>;</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;  setParity (<a class="code" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481">parity_t</a> parity);</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;  <a class="code" href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481">parity_t</a></div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;  getParity () <span class="keyword">const</span>;</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;  setStopbits (stopbits_t stopbits);</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;  stopbits_t</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;  getStopbits () <span class="keyword">const</span>;</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;  setFlowcontrol (flowcontrol_t flowcontrol);</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;  flowcontrol_t</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;  getFlowcontrol () <span class="keyword">const</span>;</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;  flush ();</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;  flushInput ();</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;  flushOutput ();</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;  sendBreak (<span class="keywordtype">int</span> duration);</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;  setBreak (<span class="keywordtype">bool</span> level = <span class="keyword">true</span>);</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;  setRTS (<span class="keywordtype">bool</span> level = <span class="keyword">true</span>);</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;  <span class="keywordtype">void</span></div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;  setDTR (<span class="keywordtype">bool</span> level = <span class="keyword">true</span>);</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;  <span class="keywordtype">bool</span></div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;  waitForChange ();</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;  <span class="keywordtype">bool</span></div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;  getCTS ();</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;  <span class="keywordtype">bool</span></div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;  getDSR ();</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;  <span class="keywordtype">bool</span></div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;  getRI ();</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;  <span class="keywordtype">bool</span></div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;  getCD ();</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;  <span class="comment">// Disable copy constructors</span></div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;  <a class="code" href="classserial_1_1_serial.html">Serial</a>(<span class="keyword">const</span> <a class="code" href="classserial_1_1_serial.html">Serial</a>&amp;);</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;  <a class="code" href="classserial_1_1_serial.html">Serial</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classserial_1_1_serial.html">Serial</a>&amp;);</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;  <span class="comment">// Pimpl idiom, d_pointer</span></div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;  <span class="keyword">class </span>SerialImpl;</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;  SerialImpl *pimpl_;</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;  <span class="comment">// Scoped Lock Classes</span></div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;  <span class="keyword">class </span><a class="code" href="class_serial_1_1_scoped_read_lock.html">ScopedReadLock</a>;</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;  <span class="keyword">class </span><a class="code" href="class_serial_1_1_scoped_write_lock.html">ScopedWriteLock</a>;</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;  <span class="comment">// Read common function</span></div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;  <span class="keywordtype">size_t</span></div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;  read_ (uint8_t *buffer, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;  <span class="comment">// Write common function</span></div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;  <span class="keywordtype">size_t</span></div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;  write_ (<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">size_t</span> length);</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;};</div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;</div><div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="classserial_1_1_serial_exception.html">  672</a></span>&#160;<span class="keyword">class </span><a class="code" href="classserial_1_1_serial_exception.html">SerialException</a> : <span class="keyword">public</span> std::exception</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;{</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;  <span class="comment">// Disable copy constructors</span></div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;  <a class="code" href="classserial_1_1_serial_exception.html">SerialException</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classserial_1_1_serial_exception.html">SerialException</a>&amp;);</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;  std::string e_what_;</div><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="classserial_1_1_serial_exception.html#ab761c0c6e5350bb30f2be40dd6073145">  678</a></span>&#160;  <a class="code" href="classserial_1_1_serial_exception.html#ab761c0c6e5350bb30f2be40dd6073145">SerialException</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *description) {</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;      std::stringstream ss;</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;      ss &lt;&lt; <span class="stringliteral">&quot;SerialException &quot;</span> &lt;&lt; description &lt;&lt; <span class="stringliteral">&quot; failed.&quot;</span>;</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;      e_what_ = ss.str();</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;  }</div><div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="classserial_1_1_serial_exception.html#a6fdfaff3c76d75f1482944ff9ac1cfbe">  683</a></span>&#160;  <a class="code" href="classserial_1_1_serial_exception.html#a6fdfaff3c76d75f1482944ff9ac1cfbe">SerialException</a> (<span class="keyword">const</span> <a class="code" href="classserial_1_1_serial_exception.html">SerialException</a>&amp; other) : e_what_(other.e_what_) {}</div><div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="classserial_1_1_serial_exception.html#a8504adb442f224ec2798e4bd33115fe3">  684</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classserial_1_1_serial_exception.html#a8504adb442f224ec2798e4bd33115fe3">~SerialException</a>() throw() {}</div><div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="classserial_1_1_serial_exception.html#a22a130c3b3785373edf7e1063d3ffd39">  685</a></span>&#160;  <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classserial_1_1_serial_exception.html#a22a130c3b3785373edf7e1063d3ffd39">what</a> () <span class="keyword">const</span> throw () {</div><div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;    <span class="keywordflow">return</span> e_what_.c_str();</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;  }</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;};</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;</div><div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="classserial_1_1_i_o_exception.html">  690</a></span>&#160;<span class="keyword">class </span><a class="code" href="classserial_1_1_i_o_exception.html">IOException</a> : <span class="keyword">public</span> std::exception</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;{</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;  <span class="comment">// Disable copy constructors</span></div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;  <a class="code" href="classserial_1_1_i_o_exception.html">IOException</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classserial_1_1_i_o_exception.html">IOException</a>&amp;);</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;  std::string file_;</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;  <span class="keywordtype">int</span> line_;</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;  std::string e_what_;</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;  <span class="keywordtype">int</span> errno_;</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="classserial_1_1_i_o_exception.html#acb2f2cf7a5cc8090945f6cbfcef3ef1e">  699</a></span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classserial_1_1_i_o_exception.html#acb2f2cf7a5cc8090945f6cbfcef3ef1e">IOException</a> (std::string file, <span class="keywordtype">int</span> line, <span class="keywordtype">int</span> errnum)</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;    : file_(file), line_(line), errno_(errnum) {</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;      std::stringstream ss;</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;<span class="preprocessor">#if defined(_WIN32) &amp;&amp; !defined(__MINGW32__)</span></div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;      <span class="keywordtype">char</span> error_str [1024];</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;      strerror_s(error_str, 1024, errnum);</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;      <span class="keywordtype">char</span> * error_str = strerror(errnum);</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;      ss &lt;&lt; <span class="stringliteral">&quot;IO Exception (&quot;</span> &lt;&lt; errno_ &lt;&lt; <span class="stringliteral">&quot;): &quot;</span> &lt;&lt; error_str;</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;      ss &lt;&lt; <span class="stringliteral">&quot;, file &quot;</span> &lt;&lt; file_ &lt;&lt; <span class="stringliteral">&quot;, line &quot;</span> &lt;&lt; line_ &lt;&lt; <span class="stringliteral">&quot;.&quot;</span>;</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;      e_what_ = ss.str();</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;  }</div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classserial_1_1_i_o_exception.html#acc1d2c650832cc8127f2cd777072b2cd">  712</a></span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classserial_1_1_i_o_exception.html#acc1d2c650832cc8127f2cd777072b2cd">IOException</a> (std::string file, <span class="keywordtype">int</span> line, <span class="keyword">const</span> <span class="keywordtype">char</span> * description)</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    : file_(file), line_(line), errno_(0) {</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;      std::stringstream ss;</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;      ss &lt;&lt; <span class="stringliteral">&quot;IO Exception: &quot;</span> &lt;&lt; description;</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;      ss &lt;&lt; <span class="stringliteral">&quot;, file &quot;</span> &lt;&lt; file_ &lt;&lt; <span class="stringliteral">&quot;, line &quot;</span> &lt;&lt; line_ &lt;&lt; <span class="stringliteral">&quot;.&quot;</span>;</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;      e_what_ = ss.str();</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;  }</div><div class="line"><a name="l00719"></a><span class="lineno"><a class="line" href="classserial_1_1_i_o_exception.html#a026ae2e6abc57c6069915f0f8c701390">  719</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classserial_1_1_i_o_exception.html#a026ae2e6abc57c6069915f0f8c701390">~IOException</a>() throw() {}</div><div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="classserial_1_1_i_o_exception.html#af65196a71b800d11b5e5c367caf5b354">  720</a></span>&#160;  <a class="code" href="classserial_1_1_i_o_exception.html#af65196a71b800d11b5e5c367caf5b354">IOException</a> (<span class="keyword">const</span> <a class="code" href="classserial_1_1_i_o_exception.html">IOException</a>&amp; other) : line_(other.line_), e_what_(other.e_what_), errno_(other.errno_) {}</div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;</div><div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="classserial_1_1_i_o_exception.html#aa1c0af34b4547249b473e958699552d7">  722</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="classserial_1_1_i_o_exception.html#aa1c0af34b4547249b473e958699552d7">getErrorNumber</a> ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> errno_; }</div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;</div><div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="classserial_1_1_i_o_exception.html#a5151f78cf0309db2c79f3dc4c779c774">  724</a></span>&#160;  <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classserial_1_1_i_o_exception.html#a5151f78cf0309db2c79f3dc4c779c774">what</a> () <span class="keyword">const</span> throw () {</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;    <span class="keywordflow">return</span> e_what_.c_str();</div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;  }</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;};</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;</div><div class="line"><a name="l00729"></a><span class="lineno"><a class="line" href="classserial_1_1_port_not_opened_exception.html">  729</a></span>&#160;<span class="keyword">class </span><a class="code" href="classserial_1_1_port_not_opened_exception.html">PortNotOpenedException</a> : <span class="keyword">public</span> std::exception</div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;{</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;  <span class="comment">// Disable copy constructors</span></div><div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;  <span class="keyword">const</span> <a class="code" href="classserial_1_1_port_not_opened_exception.html">PortNotOpenedException</a>&amp; operator=(<a class="code" href="classserial_1_1_port_not_opened_exception.html">PortNotOpenedException</a>);</div><div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;  std::string e_what_;</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="classserial_1_1_port_not_opened_exception.html#acd2213fae864534eae6a580f74c5ab1b">  735</a></span>&#160;  <a class="code" href="classserial_1_1_port_not_opened_exception.html#acd2213fae864534eae6a580f74c5ab1b">PortNotOpenedException</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> * description)  {</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;      std::stringstream ss;</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;      ss &lt;&lt; <span class="stringliteral">&quot;PortNotOpenedException &quot;</span> &lt;&lt; description &lt;&lt; <span class="stringliteral">&quot; failed.&quot;</span>;</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;      e_what_ = ss.str();</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;  }</div><div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="classserial_1_1_port_not_opened_exception.html#ae8b466d10d496a53ed8e9f949e9e628c">  740</a></span>&#160;  <a class="code" href="classserial_1_1_port_not_opened_exception.html#ae8b466d10d496a53ed8e9f949e9e628c">PortNotOpenedException</a> (<span class="keyword">const</span> <a class="code" href="classserial_1_1_port_not_opened_exception.html">PortNotOpenedException</a>&amp; other) : e_what_(other.e_what_) {}</div><div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="classserial_1_1_port_not_opened_exception.html#a1d7499214c9f43ed89676f2c90dd72a6">  741</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classserial_1_1_port_not_opened_exception.html#a1d7499214c9f43ed89676f2c90dd72a6">~PortNotOpenedException</a>() throw() {}</div><div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="classserial_1_1_port_not_opened_exception.html#a314c997ecfe3990c4af147b247e8d9ce">  742</a></span>&#160;  <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classserial_1_1_port_not_opened_exception.html#a314c997ecfe3990c4af147b247e8d9ce">what</a> () <span class="keyword">const</span> throw () {</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    <span class="keywordflow">return</span> e_what_.c_str();</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;  }</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;};</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;</div><div class="line"><a name="l00750"></a><span class="lineno"><a class="line" href="structserial_1_1_port_info.html">  750</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structserial_1_1_port_info.html">PortInfo</a> {</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;</div><div class="line"><a name="l00753"></a><span class="lineno"><a class="line" href="structserial_1_1_port_info.html#a5d4242cdd6c0d01260e24964af4c23d2">  753</a></span>&#160;  std::string <a class="code" href="structserial_1_1_port_info.html#a5d4242cdd6c0d01260e24964af4c23d2">port</a>;</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;</div><div class="line"><a name="l00756"></a><span class="lineno"><a class="line" href="structserial_1_1_port_info.html#a2ba37dd33d47b554aef5c15c1fe8b872">  756</a></span>&#160;  std::string <a class="code" href="structserial_1_1_port_info.html#a2ba37dd33d47b554aef5c15c1fe8b872">description</a>;</div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;</div><div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="structserial_1_1_port_info.html#a7d55368e1a4e6ccc9da6f4d339524837">  759</a></span>&#160;  std::string <a class="code" href="structserial_1_1_port_info.html#a7d55368e1a4e6ccc9da6f4d339524837">hardware_id</a>;</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;};</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;<span class="comment">/* Lists the serial ports available on the system</span></div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;<span class="comment"> * Returns a vector of available serial ports, each represented</span></div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;<span class="comment"> * by a serial::PortInfo data structure:</span></div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;<span class="comment"> * \return vector of serial::PortInfo.</span></div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;std::vector&lt;PortInfo&gt;</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;<a class="code" href="namespaceserial.html#a8fa048a9e4663d6d6b474c1830491a57">list_ports</a>();</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;</div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;} <span class="comment">// namespace serial</span></div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="namespaceserial_html_a8fa048a9e4663d6d6b474c1830491a57"><div class="ttname"><a href="namespaceserial.html#a8fa048a9e4663d6d6b474c1830491a57">serial::list_ports</a></div><div class="ttdeci">std::vector&lt; PortInfo &gt; list_ports()</div></div>
<div class="ttc" id="namespaceserial_html_a8f45d26bf7c9a06659e75b5004a50481a6d7af531414706617a23fe1926ad7ac6"><div class="ttname"><a href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481a6d7af531414706617a23fe1926ad7ac6">serial::parity_mark</a></div><div class="ttdef"><b>Definition:</b> serial.h:70</div></div>
<div class="ttc" id="structserial_1_1_timeout_html_a1a454b17f5d653b8e1b04b3ec2fead59"><div class="ttname"><a href="structserial_1_1_timeout.html#a1a454b17f5d653b8e1b04b3ec2fead59">serial::Timeout::Timeout</a></div><div class="ttdeci">Timeout(uint32_t inter_byte_timeout_=0, uint32_t read_timeout_constant_=0, uint32_t read_timeout_multiplier_=0, uint32_t write_timeout_constant_=0, uint32_t write_timeout_multiplier_=0)</div><div class="ttdef"><b>Definition:</b> serial.h:131</div></div>
<div class="ttc" id="classserial_1_1_i_o_exception_html_acc1d2c650832cc8127f2cd777072b2cd"><div class="ttname"><a href="classserial_1_1_i_o_exception.html#acc1d2c650832cc8127f2cd777072b2cd">serial::IOException::IOException</a></div><div class="ttdeci">IOException(std::string file, int line, const char *description)</div><div class="ttdef"><b>Definition:</b> serial.h:712</div></div>
<div class="ttc" id="classserial_1_1_serial_html_a4b4be39af3e1c68bc6ac09cb55788c86"><div class="ttname"><a href="classserial_1_1_serial.html#a4b4be39af3e1c68bc6ac09cb55788c86">serial::Serial::setTimeout</a></div><div class="ttdeci">void setTimeout(uint32_t inter_byte_timeout, uint32_t read_timeout_constant, uint32_t read_timeout_multiplier, uint32_t write_timeout_constant, uint32_t write_timeout_multiplier)</div><div class="ttdef"><b>Definition:</b> serial.h:465</div></div>
<div class="ttc" id="namespaceserial_html_a00b3281fa11cea770c0b0c8a106080f8a608eb93b80fe8531d626b4e588c5bc8b"><div class="ttname"><a href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8a608eb93b80fe8531d626b4e588c5bc8b">serial::sixbits</a></div><div class="ttdef"><b>Definition:</b> serial.h:58</div></div>
<div class="ttc" id="classserial_1_1_i_o_exception_html_af65196a71b800d11b5e5c367caf5b354"><div class="ttname"><a href="classserial_1_1_i_o_exception.html#af65196a71b800d11b5e5c367caf5b354">serial::IOException::IOException</a></div><div class="ttdeci">IOException(const IOException &amp;other)</div><div class="ttdef"><b>Definition:</b> serial.h:720</div></div>
<div class="ttc" id="class_serial_1_1_scoped_write_lock_html"><div class="ttname"><a href="class_serial_1_1_scoped_write_lock.html">serial::Serial::ScopedWriteLock</a></div><div class="ttdef"><b>Definition:</b> serial.cc:51</div></div>
<div class="ttc" id="structserial_1_1_port_info_html_a7d55368e1a4e6ccc9da6f4d339524837"><div class="ttname"><a href="structserial_1_1_port_info.html#a7d55368e1a4e6ccc9da6f4d339524837">serial::PortInfo::hardware_id</a></div><div class="ttdeci">std::string hardware_id</div><div class="ttdef"><b>Definition:</b> serial.h:759</div></div>
<div class="ttc" id="namespaceserial_html_a8f45d26bf7c9a06659e75b5004a50481"><div class="ttname"><a href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481">serial::parity_t</a></div><div class="ttdeci">parity_t</div><div class="ttdef"><b>Definition:</b> serial.h:66</div></div>
<div class="ttc" id="namespaceserial_html_a8f45d26bf7c9a06659e75b5004a50481abe15d241d407528bc8a199b02301ed46"><div class="ttname"><a href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481abe15d241d407528bc8a199b02301ed46">serial::parity_even</a></div><div class="ttdef"><b>Definition:</b> serial.h:69</div></div>
<div class="ttc" id="namespaceserial_html_a00b3281fa11cea770c0b0c8a106080f8"><div class="ttname"><a href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8">serial::bytesize_t</a></div><div class="ttdeci">bytesize_t</div><div class="ttdef"><b>Definition:</b> serial.h:56</div></div>
<div class="ttc" id="namespaceserial_html_a93ef57a314b4e562f9eded6c15d34351ab3390af5eee11740af5e09d71ad419a6"><div class="ttname"><a href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351ab3390af5eee11740af5e09d71ad419a6">serial::flowcontrol_software</a></div><div class="ttdef"><b>Definition:</b> serial.h:88</div></div>
<div class="ttc" id="namespaceserial_html_a8f45d26bf7c9a06659e75b5004a50481affd8fd58edf7c25bab458cafaebecb10"><div class="ttname"><a href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481affd8fd58edf7c25bab458cafaebecb10">serial::parity_odd</a></div><div class="ttdef"><b>Definition:</b> serial.h:68</div></div>
<div class="ttc" id="namespaceserial_html"><div class="ttname"><a href="namespaceserial.html">serial</a></div><div class="ttdef"><b>Definition:</b> unix.h:47</div></div>
<div class="ttc" id="classserial_1_1_i_o_exception_html_a5151f78cf0309db2c79f3dc4c779c774"><div class="ttname"><a href="classserial_1_1_i_o_exception.html#a5151f78cf0309db2c79f3dc4c779c774">serial::IOException::what</a></div><div class="ttdeci">virtual const char * what() const </div><div class="ttdef"><b>Definition:</b> serial.h:724</div></div>
<div class="ttc" id="structserial_1_1_timeout_html_a64412753eb2edf1621716dd9f1a4e71e"><div class="ttname"><a href="structserial_1_1_timeout.html#a64412753eb2edf1621716dd9f1a4e71e">serial::Timeout::read_timeout_multiplier</a></div><div class="ttdeci">uint32_t read_timeout_multiplier</div><div class="ttdef"><b>Definition:</b> serial.h:123</div></div>
<div class="ttc" id="structserial_1_1_timeout_html_a31ddae32907cff9c3d27fa763981317d"><div class="ttname"><a href="structserial_1_1_timeout.html#a31ddae32907cff9c3d27fa763981317d">serial::Timeout::write_timeout_multiplier</a></div><div class="ttdeci">uint32_t write_timeout_multiplier</div><div class="ttdef"><b>Definition:</b> serial.h:129</div></div>
<div class="ttc" id="classserial_1_1_serial_exception_html_a8504adb442f224ec2798e4bd33115fe3"><div class="ttname"><a href="classserial_1_1_serial_exception.html#a8504adb442f224ec2798e4bd33115fe3">serial::SerialException::~SerialException</a></div><div class="ttdeci">virtual ~SerialException()</div><div class="ttdef"><b>Definition:</b> serial.h:684</div></div>
<div class="ttc" id="namespaceserial_html_a8f45d26bf7c9a06659e75b5004a50481a31cbb2b3cf0870d1a089d66295918416"><div class="ttname"><a href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481a31cbb2b3cf0870d1a089d66295918416">serial::parity_none</a></div><div class="ttdef"><b>Definition:</b> serial.h:67</div></div>
<div class="ttc" id="classserial_1_1_i_o_exception_html"><div class="ttname"><a href="classserial_1_1_i_o_exception.html">serial::IOException</a></div><div class="ttdef"><b>Definition:</b> serial.h:690</div></div>
<div class="ttc" id="structserial_1_1_timeout_html"><div class="ttname"><a href="structserial_1_1_timeout.html">serial::Timeout</a></div><div class="ttdef"><b>Definition:</b> serial.h:98</div></div>
<div class="ttc" id="classserial_1_1_serial_exception_html_a22a130c3b3785373edf7e1063d3ffd39"><div class="ttname"><a href="classserial_1_1_serial_exception.html#a22a130c3b3785373edf7e1063d3ffd39">serial::SerialException::what</a></div><div class="ttdeci">virtual const char * what() const </div><div class="ttdef"><b>Definition:</b> serial.h:685</div></div>
<div class="ttc" id="namespaceserial_html_af5b116611d6628a3aa8f788fdc09f469ab70806555a14cb43e5cc43f6f3d01157"><div class="ttname"><a href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469ab70806555a14cb43e5cc43f6f3d01157">serial::stopbits_one</a></div><div class="ttdef"><b>Definition:</b> serial.h:78</div></div>
<div class="ttc" id="namespaceserial_html_af5b116611d6628a3aa8f788fdc09f469ae0b1b8af1ece65afeacbe9fff198fa47"><div class="ttname"><a href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469ae0b1b8af1ece65afeacbe9fff198fa47">serial::stopbits_two</a></div><div class="ttdef"><b>Definition:</b> serial.h:79</div></div>
<div class="ttc" id="classserial_1_1_i_o_exception_html_a026ae2e6abc57c6069915f0f8c701390"><div class="ttname"><a href="classserial_1_1_i_o_exception.html#a026ae2e6abc57c6069915f0f8c701390">serial::IOException::~IOException</a></div><div class="ttdeci">virtual ~IOException()</div><div class="ttdef"><b>Definition:</b> serial.h:719</div></div>
<div class="ttc" id="structserial_1_1_port_info_html_a2ba37dd33d47b554aef5c15c1fe8b872"><div class="ttname"><a href="structserial_1_1_port_info.html#a2ba37dd33d47b554aef5c15c1fe8b872">serial::PortInfo::description</a></div><div class="ttdeci">std::string description</div><div class="ttdef"><b>Definition:</b> serial.h:756</div></div>
<div class="ttc" id="namespaceserial_html_a93ef57a314b4e562f9eded6c15d34351a84d411ac86fd25d659eef30aade04c43"><div class="ttname"><a href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351a84d411ac86fd25d659eef30aade04c43">serial::flowcontrol_hardware</a></div><div class="ttdef"><b>Definition:</b> serial.h:89</div></div>
<div class="ttc" id="structserial_1_1_port_info_html"><div class="ttname"><a href="structserial_1_1_port_info.html">serial::PortInfo</a></div><div class="ttdef"><b>Definition:</b> serial.h:750</div></div>
<div class="ttc" id="structserial_1_1_timeout_html_a099244649dec66b6e0548480edeb2b9f"><div class="ttname"><a href="structserial_1_1_timeout.html#a099244649dec66b6e0548480edeb2b9f">serial::Timeout::read_timeout_constant</a></div><div class="ttdeci">uint32_t read_timeout_constant</div><div class="ttdef"><b>Definition:</b> serial.h:119</div></div>
<div class="ttc" id="structserial_1_1_timeout_html_adc68e33d2f94bfa33ba1062c363b9151"><div class="ttname"><a href="structserial_1_1_timeout.html#adc68e33d2f94bfa33ba1062c363b9151">serial::Timeout::max</a></div><div class="ttdeci">static uint32_t max()</div><div class="ttdef"><b>Definition:</b> serial.h:102</div></div>
<div class="ttc" id="classserial_1_1_i_o_exception_html_aa1c0af34b4547249b473e958699552d7"><div class="ttname"><a href="classserial_1_1_i_o_exception.html#aa1c0af34b4547249b473e958699552d7">serial::IOException::getErrorNumber</a></div><div class="ttdeci">int getErrorNumber() const </div><div class="ttdef"><b>Definition:</b> serial.h:722</div></div>
<div class="ttc" id="structserial_1_1_timeout_html_ada15f2a0ae478cbb62ef79d1633b2b81"><div class="ttname"><a href="structserial_1_1_timeout.html#ada15f2a0ae478cbb62ef79d1633b2b81">serial::Timeout::inter_byte_timeout</a></div><div class="ttdeci">uint32_t inter_byte_timeout</div><div class="ttdef"><b>Definition:</b> serial.h:117</div></div>
<div class="ttc" id="v8stdint_8h_html"><div class="ttname"><a href="v8stdint_8h.html">v8stdint.h</a></div></div>
<div class="ttc" id="classserial_1_1_serial_exception_html"><div class="ttname"><a href="classserial_1_1_serial_exception.html">serial::SerialException</a></div><div class="ttdef"><b>Definition:</b> serial.h:672</div></div>
<div class="ttc" id="structserial_1_1_port_info_html_a5d4242cdd6c0d01260e24964af4c23d2"><div class="ttname"><a href="structserial_1_1_port_info.html#a5d4242cdd6c0d01260e24964af4c23d2">serial::PortInfo::port</a></div><div class="ttdeci">std::string port</div><div class="ttdef"><b>Definition:</b> serial.h:753</div></div>
<div class="ttc" id="namespaceserial_html_af5b116611d6628a3aa8f788fdc09f469abb25fb831662d361d99cf12fb0da45ec"><div class="ttname"><a href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469abb25fb831662d361d99cf12fb0da45ec">serial::stopbits_one_point_five</a></div><div class="ttdef"><b>Definition:</b> serial.h:80</div></div>
<div class="ttc" id="classserial_1_1_port_not_opened_exception_html_ae8b466d10d496a53ed8e9f949e9e628c"><div class="ttname"><a href="classserial_1_1_port_not_opened_exception.html#ae8b466d10d496a53ed8e9f949e9e628c">serial::PortNotOpenedException::PortNotOpenedException</a></div><div class="ttdeci">PortNotOpenedException(const PortNotOpenedException &amp;other)</div><div class="ttdef"><b>Definition:</b> serial.h:740</div></div>
<div class="ttc" id="namespaceserial_html_a93ef57a314b4e562f9eded6c15d34351a083bc02a6e8e7c6540a28654c0f95bb0"><div class="ttname"><a href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351a083bc02a6e8e7c6540a28654c0f95bb0">serial::flowcontrol_none</a></div><div class="ttdef"><b>Definition:</b> serial.h:87</div></div>
<div class="ttc" id="namespaceserial_html_a00b3281fa11cea770c0b0c8a106080f8a47f14d952cf9bed6c3f7ae5985161990"><div class="ttname"><a href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8a47f14d952cf9bed6c3f7ae5985161990">serial::eightbits</a></div><div class="ttdef"><b>Definition:</b> serial.h:60</div></div>
<div class="ttc" id="classserial_1_1_port_not_opened_exception_html_acd2213fae864534eae6a580f74c5ab1b"><div class="ttname"><a href="classserial_1_1_port_not_opened_exception.html#acd2213fae864534eae6a580f74c5ab1b">serial::PortNotOpenedException::PortNotOpenedException</a></div><div class="ttdeci">PortNotOpenedException(const char *description)</div><div class="ttdef"><b>Definition:</b> serial.h:735</div></div>
<div class="ttc" id="namespaceserial_html_af5b116611d6628a3aa8f788fdc09f469"><div class="ttname"><a href="namespaceserial.html#af5b116611d6628a3aa8f788fdc09f469">serial::stopbits_t</a></div><div class="ttdeci">stopbits_t</div><div class="ttdef"><b>Definition:</b> serial.h:77</div></div>
<div class="ttc" id="namespaceserial_html_a00b3281fa11cea770c0b0c8a106080f8af09eeaf7333d2feda0bd3d748d5e3123"><div class="ttname"><a href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8af09eeaf7333d2feda0bd3d748d5e3123">serial::fivebits</a></div><div class="ttdef"><b>Definition:</b> serial.h:57</div></div>
<div class="ttc" id="classserial_1_1_port_not_opened_exception_html_a1d7499214c9f43ed89676f2c90dd72a6"><div class="ttname"><a href="classserial_1_1_port_not_opened_exception.html#a1d7499214c9f43ed89676f2c90dd72a6">serial::PortNotOpenedException::~PortNotOpenedException</a></div><div class="ttdeci">virtual ~PortNotOpenedException()</div><div class="ttdef"><b>Definition:</b> serial.h:741</div></div>
<div class="ttc" id="classserial_1_1_serial_exception_html_ab761c0c6e5350bb30f2be40dd6073145"><div class="ttname"><a href="classserial_1_1_serial_exception.html#ab761c0c6e5350bb30f2be40dd6073145">serial::SerialException::SerialException</a></div><div class="ttdeci">SerialException(const char *description)</div><div class="ttdef"><b>Definition:</b> serial.h:678</div></div>
<div class="ttc" id="namespaceserial_html_a00b3281fa11cea770c0b0c8a106080f8a7cf0a3607e326ff6736941008ea8174d"><div class="ttname"><a href="namespaceserial.html#a00b3281fa11cea770c0b0c8a106080f8a7cf0a3607e326ff6736941008ea8174d">serial::sevenbits</a></div><div class="ttdef"><b>Definition:</b> serial.h:59</div></div>
<div class="ttc" id="classserial_1_1_port_not_opened_exception_html"><div class="ttname"><a href="classserial_1_1_port_not_opened_exception.html">serial::PortNotOpenedException</a></div><div class="ttdef"><b>Definition:</b> serial.h:729</div></div>
<div class="ttc" id="class_serial_1_1_scoped_read_lock_html"><div class="ttname"><a href="class_serial_1_1_scoped_read_lock.html">serial::Serial::ScopedReadLock</a></div><div class="ttdef"><b>Definition:</b> serial.cc:35</div></div>
<div class="ttc" id="classserial_1_1_serial_exception_html_a6fdfaff3c76d75f1482944ff9ac1cfbe"><div class="ttname"><a href="classserial_1_1_serial_exception.html#a6fdfaff3c76d75f1482944ff9ac1cfbe">serial::SerialException::SerialException</a></div><div class="ttdeci">SerialException(const SerialException &amp;other)</div><div class="ttdef"><b>Definition:</b> serial.h:683</div></div>
<div class="ttc" id="structserial_1_1_timeout_html_accf01b97f83564f4ce3d6e5f63e21006"><div class="ttname"><a href="structserial_1_1_timeout.html#accf01b97f83564f4ce3d6e5f63e21006">serial::Timeout::write_timeout_constant</a></div><div class="ttdeci">uint32_t write_timeout_constant</div><div class="ttdef"><b>Definition:</b> serial.h:125</div></div>
<div class="ttc" id="classserial_1_1_serial_html"><div class="ttname"><a href="classserial_1_1_serial.html">serial::Serial</a></div><div class="ttdef"><b>Definition:</b> serial.h:147</div></div>
<div class="ttc" id="structserial_1_1_timeout_html_aa4fbd72e16f47c9aea9fb3c32ca17828"><div class="ttname"><a href="structserial_1_1_timeout.html#aa4fbd72e16f47c9aea9fb3c32ca17828">serial::Timeout::simpleTimeout</a></div><div class="ttdeci">static Timeout simpleTimeout(uint32_t timeout)</div><div class="ttdef"><b>Definition:</b> serial.h:112</div></div>
<div class="ttc" id="namespaceserial_html_a8f45d26bf7c9a06659e75b5004a50481a94681358f3d53873698fdc98d6890cef"><div class="ttname"><a href="namespaceserial.html#a8f45d26bf7c9a06659e75b5004a50481a94681358f3d53873698fdc98d6890cef">serial::parity_space</a></div><div class="ttdef"><b>Definition:</b> serial.h:71</div></div>
<div class="ttc" id="classserial_1_1_i_o_exception_html_acb2f2cf7a5cc8090945f6cbfcef3ef1e"><div class="ttname"><a href="classserial_1_1_i_o_exception.html#acb2f2cf7a5cc8090945f6cbfcef3ef1e">serial::IOException::IOException</a></div><div class="ttdeci">IOException(std::string file, int line, int errnum)</div><div class="ttdef"><b>Definition:</b> serial.h:699</div></div>
<div class="ttc" id="classserial_1_1_port_not_opened_exception_html_a314c997ecfe3990c4af147b247e8d9ce"><div class="ttname"><a href="classserial_1_1_port_not_opened_exception.html#a314c997ecfe3990c4af147b247e8d9ce">serial::PortNotOpenedException::what</a></div><div class="ttdeci">virtual const char * what() const </div><div class="ttdef"><b>Definition:</b> serial.h:742</div></div>
<div class="ttc" id="namespaceserial_html_a93ef57a314b4e562f9eded6c15d34351"><div class="ttname"><a href="namespaceserial.html#a93ef57a314b4e562f9eded6c15d34351">serial::flowcontrol_t</a></div><div class="ttdeci">flowcontrol_t</div><div class="ttdef"><b>Definition:</b> serial.h:86</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Aug 20 2018 10:52:41 for serial by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
